package com.jfirer.validator;

import javax.validation.ConstraintViolation;
import javax.validation.Path;
import javax.validation.metadata.ConstraintDescriptor;

public interface WritableConstraintViolation<T> extends ConstraintViolation<T>
{
    
    void setMessage(String message);
    
    void setMessageTemplate(String messageTemplate);
    
    void setRootBean(T rootBean);
    
    void setRootBeanClass(Class<T> rootBeanClass);
    
    void setLeafBean(Object leafBean);
    
    void setPropertyPath(Path propertyPath);
    
    void setInvalidValue(Object invalidValue);
    
    void setConstraintDescriptor(ConstraintDescriptor<?> constraintDescriptor);
    
    void setExecutableParameters(Object[] executableParameters);
    
    void setExecutableReturnValue(Object executableReturnValue);
    
}
